Add some const_casts in places where we were implicitly casting away constness. No functional change, but now they're explicit git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@305410 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/__functional_03 b/include/__functional_03 index 1db7082..13d8a3d 100644 --- a/include/__functional_03 +++ b/include/__functional_03 
@@ -704,7 +704,7 @@  {  if (__f_ == 0)  return (_Tp*)0; - return (_Tp*)__f_->target(typeid(_Tp)); + return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));  }    template<class _Rp> @@ -980,7 +980,7 @@  {  if (__f_ == 0)  return (_Tp*)0; - return (_Tp*)__f_->target(typeid(_Tp)); + return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));  }    template<class _Rp, class _A0> @@ -1256,7 +1256,7 @@  {  if (__f_ == 0)  return (_Tp*)0; - return (_Tp*)__f_->target(typeid(_Tp)); + return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));  }    template<class _Rp, class _A0, class _A1> @@ -1532,7 +1532,7 @@  {  if (__f_ == 0)  return (_Tp*)0; - return (_Tp*)__f_->target(typeid(_Tp)); + return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));  }    template<class _Rp, class _A0, class _A1, class _A2> 
diff --git a/include/fstream b/include/fstream index e41a53a..ffd5698 100644 --- a/include/fstream +++ b/include/fstream 
@@ -617,7 +617,7 @@  static_cast<size_t>(__extbufend_ - __extbufnext_));  codecvt_base::result __r;  __st_last_ = __st_; - size_t __nr = fread((void*)__extbufnext_, 1, __nmemb, __file_); + size_t __nr = fread((void*) const_cast<char *>(__extbufnext_), 1, __nmemb, __file_);  if (__nr != 0)  {  if (!__cv_) @@ -630,7 +630,8 @@  this->eback() + __ibs_, __inext);  if (__r == codecvt_base::noconv)  { - this->setg((char_type*)__extbuf_, (char_type*)__extbuf_, (char_type*)__extbufend_); + this->setg((char_type*)__extbuf_, (char_type*)__extbuf_,  + (char_type*)const_cast<char *>(__extbufend_));  __c = traits_type::to_int_type(*this->gptr());  }  else if (__inext != this->eback() + __unget_sz) @@ -722,7 +723,7 @@  return traits_type::eof();  if (__r == codecvt_base::partial)  { - this->setp((char_type*)__e, this->pptr()); + this->setp(const_cast<char_type*>(__e), this->pptr());  this->pbump(this->epptr() - this->pbase());  }  } 
diff --git a/include/functional b/include/functional index ea35697..83a2e5a 100644 --- a/include/functional +++ b/include/functional 
@@ -1941,8 +1941,8 @@  function<_Rp(_ArgTypes...)>::target() _NOEXCEPT  {  if (__f_ == 0) - return (_Tp*)0; - return (_Tp*)__f_->target(typeid(_Tp)); + return nullptr; + return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));  }    template<class _Rp, class ..._ArgTypes> @@ -1951,7 +1951,7 @@  function<_Rp(_ArgTypes...)>::target() const _NOEXCEPT  {  if (__f_ == 0) - return (const _Tp*)0; + return nullptr;  return (const _Tp*)__f_->target(typeid(_Tp));  }   
diff --git a/include/locale b/include/locale index 6aaa22c..6363b8c 100644 --- a/include/locale +++ b/include/locale 
@@ -3960,7 +3960,8 @@  this->egptr(), __inext);  if (__r == codecvt_base::noconv)  { - this->setg((char_type*)__extbuf_, (char_type*)__extbuf_, (char_type*)__extbufend_); + this->setg((char_type*)__extbuf_, (char_type*)__extbuf_,  + (char_type*) const_cast<char *>(__extbufend_));  __c = *this->gptr();  }  else if (__inext != this->eback() + __unget_sz) @@ -4048,7 +4049,7 @@  return traits_type::eof();  if (__r == codecvt_base::partial)  { - this->setp((char_type*)__e, this->pptr()); + this->setp(const_cast<char_type *>(__e), this->pptr());  this->pbump(this->epptr() - this->pbase());  }  } 
diff --git a/test/support/allocators.h b/test/support/allocators.h index b1eea8d..00e9a0c 100644 --- a/test/support/allocators.h +++ b/test/support/allocators.h 
@@ -104,7 +104,7 @@  T* allocate(std::size_t, const void* hint)  {  allocate_called = true; - return (T*)hint; + return (T*) const_cast<void *>(hint);  }  };